Tekenreeksen interpolatie
Een geïnterpoleerd tekenreeksexpressie ziet eruit als een template string die expressies bevat. Een geïnterpoleerd tekenreeksexpressie creëert een string door de expressies erin te vervangen door ToString
representaties van de resultaten van de expressies. Een geïnterpoleerde string is gemakkelijker te lezen en te begrijpen dan de Tekenreeksen formatteren (composite formatting).
Voorbeelden
composite formating
string item = "brood"; decimal amount = 2.25m; Console.WriteLine("{0,-10}{1:C}", item, amount);
interpolatie
Console.WriteLine($"{item}kost {amount}");
De $ prefix is vereist. De waarde in de item
variabele gaat {item}
vervangen en de waarde in de amount
variabele vervangt {amount}
. Net zoals bij numerieke placeholders, kan je bijkomende formattering toevoegen.
Console.WriteLine($"{nameof(item)}: {item,-10} {nameof(amount)}: {amount:C}");
De nameof operator retourneert de naam “item”. Zo zie je dat je expressies kan gebruiken in placeholders. Hier passen we witruimte en valuta formattering toe op item
en amount
.
string name = "Bob Dylan"; int age = 80; var s = $"{name, 20} is {age:D3} year{(age == 1 ? "" : "s")} old."; Console.WriteLine(s);
Oefening
- Plaats de code hierboven in een static methode met de naam Interpolatie in de klasse met de naam
WerkenMetGegevens
in de namespace met de naamLerenWerkenMetCSharp
. - Test deze methode in de
Main
methode in Program.cs.